var calendarDiv;	
var calendarThisInput;
var calendarOtherInput;
var currTime = getCurrentDate(new Date);

// 달력 생성
function createCalendar(){
	calendarDiv = new dhtmlxCalendarObject('calendarDiv', false, {
	    isYearEditable :false,
	    isMonthEditable :false,
	    isWinHeader: true,
	    headerButtons: 'X',
	    winTitle:'Calendar'
	});
	
	calendarDiv.setOnClickHandler(selectDate);
	calendarDiv.loadUserLanguage("ko-kr");
	calendarDiv.loadUserLanguage("ko-kr");
	calendarDiv.setYearsRange(1900, 2200);
	calendarDiv.setSkin("yahoolike");
	calendarDiv.draw();
}

// 달력 이미지 클릭
function clickCalendar(){
	calendarThisInput = $(this).prev();
	if($(this).prev().attr("id") == "beg"){
		calendarOtherInput = $(this).parent().parent().find("#end");
	}
	else{
		calendarOtherInput = $(this).parent().parent().find("#beg");
	}
	$('#calendarDiv').css("display", "block");
	$('#calendarDiv').css("top", calendarThisInput.offset().top + 22);
	$('#calendarDiv').css("left", calendarThisInput.offset().left + 1);
	
    if(calendarThisInput.val() != ''){
    	calendarDiv.setDate(calendarThisInput.val());
    }
}

// 달력에서 날짜 선택
function selectDate(date){
	var tr = calendarThisInput.parent().parent();

	if(calendarThisInput.attr("id") == "beg"){
		if(calendarOtherInput.val() < calendarDiv.getFormatedDate(null, date) && calendarOtherInput.val() != ""){
			alert("전시시작일이 전시종료일보다 나중일 수 없습니다.");
			return;
		}
		tr.attr("dpBegDttm", calendarDiv.getFormatedDate(null, date));
	}
	else{
		if(calendarOtherInput.val() > calendarDiv.getFormatedDate(null, date) && calendarOtherInput.val() != ""){
			alert("전시종료일이 전시시작일보다 먼저일 수 없습니다.");
			return;
		}
		if(currTime > calendarDiv.getFormatedDate(null, date)){
			alert("전시기간을 오늘 이전으로 설정할 수 없습니다.");
			return;
		}
		tr.attr("dpEndDttm", calendarDiv.getFormatedDate(null, date));
	}
	
	calendarThisInput.val(calendarDiv.getFormatedDate(null, date));
	
    $('#calendarDiv').css("display", "none");
    return true;
}

// 달력 직접입력시 숫자만 입력 가능하도록 한다.(달력 시작일자 ID와 달력 종료일자 ID를 넘겨준다.)
// 포커스인, 포커스 아웃 이벤트 발생시 날짜 형식에 맞게 처리해준다.
function calendarValidate(begId, endId){
	if(typeof(begId) != undefined){
		$("input[id=" + begId + "]").live("focusin", focusInput);
		$("input[id=" + begId + "]").live("focusout", dateValidate);
		$("input[id=" + begId + "]").numeric();
		$("input[id=" + begId + "]").attr("maxlength", "8");
		$("input[id=" + begId + "]").css("ime-mode", "disabled");
	}
	
	if(typeof(endId) != undefined){
		$("input[id=" + endId + "]").live("focusin", focusInput);
		$("input[id=" + endId + "]").live("focusout", dateValidate);
		$("input[id=" + endId + "]").numeric();
		$("input[id=" + endId + "]").attr("maxlength", "8");
		$("input[id=" + endId + "]").css("ime-mode", "disabled");
	}
}

function focusInput(){
	if($(this).attr("readOnly") == "true"){ 
		return;
	}
	$(this).val($(this).val().replace(/-/gi, ""));
}

// 날짜 유효성 체크
function dateValidate(){
	var tr = $(this).parent().parent();
	var originValue = $(this).attr("id")=="beg"?tr.attr("dpBegDttm"):tr.attr("dpEndDttm");
	
	if($(this).val() == ""){ 
		$(this).val(originValue); 
		return; 
	}
	$(this).val($(this).val().replace(/-/gi, ""));
	
	if($(this).val().replace(/-/gi, "").length < 8){
		alert("유효하지 않은 날짜 형식입니다.");
		$(this).val(originValue); 
		$(this).focus();
		return;
	}
	
	var year = $(this).val().substring(0, 4);
	var month = $(this).val().substring(4, 6);
	var day = $(this).val().substring(6, 8);

	if(!isValidMonth(month)){
		alert("유효하지 않은 날짜 형식입니다.");
		$(this).val(originValue); 
		$(this).focus();
		return;
	}
	if(!isValidDay(year, month, day)){
		alert("유효하지 않은 날짜 형식입니다.");
		$(this).val(originValue); 
		$(this).focus();
		return;
	}
	
	$(this).val(year + "-" + month + "-" + day);
	tr.attr($(this).attr("id")=="beg"?"dpBegDttm":"dpEndDttm", $(this).val());
}

//팝업 리사이즈
function popResize(){
	var thisX = parseInt(document.body.scrollWidth);
	var thisY = parseInt(document.body.scrollHeight);
	var maxThisX = screen.width - 50;
	var maxThisY = screen.height - 50;
	var marginY = 0;
	
	// 브라우저별 높이 조절
	if (navigator.userAgent.indexOf("MSIE 6") > 0) marginY = 45;        // IE 6.x
	else if(navigator.userAgent.indexOf("MSIE 7") > 0) marginY = 85;    // IE 7.x
	else if(navigator.userAgent.indexOf("MSIE 8") > 0) marginY = 85;    // IE 8.x
	else if(navigator.userAgent.indexOf("Firefox") > 0) marginY = 50;   // FF
	else if(navigator.userAgent.indexOf("Opera") > 0) marginY = 30;     // Opera
	else if(navigator.userAgent.indexOf("Netscape") > 0) marginY = -2;  // Netscape

	if (thisX > maxThisX) {
		window.document.body.scroll = "yes";
		thisX = maxThisX;
	}
	if (thisY > maxThisY - marginY) {
		window.document.body.scroll = "yes";
		thisX += 19;
		thisY = maxThisY - marginY;
	}
	window.resizeTo(thisX+10, thisY+marginY);
}